package Vista;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JComboBox;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;

import Controlador.CRuta;

import java.awt.Font;

//librerias

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;

import javax.swing.DebugGraphics;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

import clasesCreadas.JPanelImagen;

import java.awt.Color;
import java.util.Vector;
//librerias
@SuppressWarnings("all")
public class VRuta extends JFrame{
	
	private static final String[] ESTADOS = {"Seleccione un estado","Lara", "Zulia", "Portuguesa", "Amazonas", "Merida"};

	private JPanel contentPane;
	private JPanel panel;
	private JLabel lblcodigo;


	private JLabel lbldescripcion;
	private JTextField txtcodigo;
	private JTextField txtdescripcion;
	private JButton btnguardar;
	private JButton btnmodificar;
	private JButton btnlimpiar;
	private JButton btneliminar;
	private JLabel lbltitulo;
	private JButton btnbuscar;
	private JLabel lblCiudad;
	private JLabel lblEstado;
	private JLabel lblDistancia;
	private JLabel lblTiempo;
	private JComboBox cmbCiudad;
	private JComboBox cmbEstado;
	private JTextField txtDistancia;
	private JTextField txtTiempo;
	private JTextField txtCooperativa;
	private JPanel logo;
	private JScrollPane scpRuta;
	private JTable tblRuta;
	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VEmpleado frame = new VEmpleado(null);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		
		});
	
	}
	
	public VRuta(CRuta cru){
		
		
		this.setExtendedState(Frame.MAXIMIZED_BOTH);
		this.setResizable(false);
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 617, 522);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		panel = new JPanel();
		panel.setBackground(Color.WHITE);
		contentPane.add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		logo = new JPanelImagen("Imagenes/logo.png");
		logo.setBounds(506, 368, 50, 50);
		panel.add(logo);
		
		scpRuta = new JScrollPane();
		//contentPane.add(scpCooperativas);
		panel.add(scpRuta);
		scpRuta.setBounds(41, 386, 398, 88);
		scpRuta.getHorizontalScrollBar().setSize(20, 10);
		
		DefaultTableModel tblCooperativaModel =
				new DefaultTableModel(
						new String[][] {},
						new String[] { "Codigo", "Descripcion", "Estado"});
		
		tblRuta = new JTable();
		DefaultTableCellRenderer modelocentrar = new DefaultTableCellRenderer();
        modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
        scpRuta.setViewportView(tblRuta);
        tblRuta.setModel(tblCooperativaModel);
        tblRuta.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tblRuta.getTableHeader().setFont(new java.awt.Font("Tahoma",1,12));
        tblRuta.getTableHeader().setForeground(new java.awt.Color(64,128,128));
        tblRuta.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
        tblRuta.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
        tblRuta.setFont(new java.awt.Font("Tahoma",0,12));
        tblRuta.setEnabled(false);
		
		lblcodigo = new JLabel("Codigo");
		lblcodigo.setBounds(77, 90, 70, 15);
		lblcodigo.setFont(new java.awt.Font("Tahoma",1,12));
		lblcodigo.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblcodigo);
		
		txtcodigo = new JTextField();
		txtcodigo.setBounds(211, 85, 171, 26);
		panel.add(txtcodigo);
		
		lbldescripcion = new JLabel("Descripcion");
		lbldescripcion.setBounds(77, 145, 85, 15);
		lbldescripcion.setFont(new java.awt.Font("Tahoma",1,12));
		lbldescripcion.setForeground(new java.awt.Color(64,128,128));
		panel.add(lbldescripcion);
		
		txtdescripcion = new JTextField();
		txtdescripcion.setBounds(211, 140, 171, 26);
		panel.add(txtdescripcion);
		
		btnguardar = new JButton("Guardar");
		btnguardar.setBounds(478, 133, 171, 26);
		btnguardar.setForeground(new java.awt.Color(64,128,128));
		btnguardar.setFont(new java.awt.Font("Tahoma",1,12));
		btnguardar.setSize(99, 32);
		btnguardar.addActionListener(cru);
		panel.add(btnguardar);
		
		lbltitulo = new JLabel("Rutas");
		lbltitulo.setBounds(260, 12, 104, 32);
		lbltitulo.setFont(new Font("Dialog", Font.BOLD, 24));
		lbltitulo.setForeground(new java.awt.Color(64,128,128));
		panel.add(lbltitulo);
		
		
		btnmodificar = new JButton("Modificar");
		btnmodificar.setBounds(478, 185, 171, 26);
		btnmodificar.setForeground(new java.awt.Color(64,128,128));
		btnmodificar.setFont(new java.awt.Font("Tahoma",1,12));
		btnmodificar.setSize(99, 32);
		btnmodificar.addActionListener(cru);
		panel.add(btnmodificar);
		
		btneliminar = new JButton("Eliminar");
		btneliminar.setBounds(478, 237, 171, 26);
		btneliminar.setForeground(new java.awt.Color(64,128,128));
		btneliminar.setFont(new java.awt.Font("Tahoma",1,12));
		btneliminar.setSize(99, 32);
		btneliminar.addActionListener(cru);
		panel.add(btneliminar);
		
		btnlimpiar = new JButton("Limpiar");
		btnlimpiar.setBounds(478, 281, 171, 26);
		btnlimpiar.setForeground(new java.awt.Color(64,128,128));
		btnlimpiar.setFont(new java.awt.Font("Tahoma",1,12));
		btnlimpiar.setSize(99, 32);
		btnlimpiar.addActionListener(cru);
		panel.add(btnlimpiar);
		
		
		btnbuscar = new JButton("Buscar");
		btnbuscar.setBounds(478, 81, 171, 26);
		btnbuscar.setForeground(new java.awt.Color(64,128,128));
		btnbuscar.setFont(new java.awt.Font("Tahoma",1,12));
		btnbuscar.setSize(99, 32);
		btnbuscar.addActionListener(cru);
		panel.add(btnbuscar);
		
		lblDistancia = new JLabel("Distancia");
		lblDistancia.setBounds(77, 246, 70, 15);
		lblDistancia.setFont(new java.awt.Font("Tahoma",1,12));
		lblDistancia.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblDistancia);
		
		txtDistancia = new JTextField();
		txtDistancia.setBounds(211, 241, 171, 26);
		panel.add(txtDistancia);
		
		lblTiempo = new JLabel("Tiempo");
		lblTiempo.setBounds(77, 194, 70, 15);
		lblTiempo.setFont(new java.awt.Font("Tahoma",1,12));
		lblTiempo.setForeground(new java.awt.Color(64,128,128));
		panel.add(lblTiempo);
		
		txtTiempo = new JTextField();
		txtTiempo.setBounds(211, 189, 171, 26);
		panel.add(txtTiempo);
		
		cmbEstado = new JComboBox();
		ComboBoxModel cmbEstadoModel = new DefaultComboBoxModel(ESTADOS);
		cmbEstado.setModel(cmbEstadoModel);
		cmbEstado.setBounds(77, 303, 311, 30);
		cmbEstado.addItemListener(cru);

		panel.add(cmbEstado);
		
		cmbCiudad = new JComboBox();
		ComboBoxModel cmbCiudadModel = new DefaultComboBoxModel();
		cmbCiudad.setModel(cmbCiudadModel);
		cmbCiudad.setBounds(77, 344, 311, 30);
		cmbCiudad.addActionListener(cru);
		panel.add(cmbCiudad);
		
		txtCooperativa = new JTextField();
		txtCooperativa.setBounds(463, 350, 114, 19);
		panel.add(txtCooperativa);
		txtCooperativa.setColumns(10);
		
	}
	
	//Metodos Gets de los objetos JTextField y JButton
	
	public JTextField getTxtCooperativa() {
		return txtCooperativa;
	}

	public JTextField getTxtDistancia(){
		return  txtDistancia;
	}
	
	public JTextField getTxtTiempo(){
		return txtTiempo;
	}
	
	public JComboBox getCmbEstado(){
		return cmbEstado;
	}
	
	public JComboBox getCmbCiudad(){
		return cmbCiudad;
	}
	
	public JTextField getTxtCodigo(){
		return txtcodigo;
	}
	
	public JTextField getTxtDescripcion(){
		return txtdescripcion;
	}
	
	//Metodos gets de los botones
	
	public JButton getBtnGuardar(){
		return btnguardar;
	}
	
	public JButton getBtnEliminar(){
		return btneliminar;
	}
	
	public JButton getBtnModificar(){
		return btnmodificar;
		
	}
	
	public JButton getBtnLimpiar(){
		return btnlimpiar;
	}
	
	public JButton getBtnBuscar(){
		return btnbuscar;
	}

	
	public static String[] getEstados() {
		return ESTADOS;
	}

	
	/** 
	 * Metodo que agrega una fila en la tabla de las rutas
	 * @param datos fila que se va agregar en tblRutas
	 */
	public void agregarFilaTblRutas(Vector<String> datos) {
		DefaultTableModel modelo = (DefaultTableModel) tblRuta.getModel();	
		modelo.addRow(datos);
	}
	
	/**
	 * Metodo que permite remover todos los elementos de tblMultas
	 */
	public void limpiarTabla(){
		DefaultTableModel modelo = (DefaultTableModel) tblRuta.getModel();
		while (modelo.getRowCount() > 0) {
			modelo.removeRow(0);
		}
	}

	

	/**
	 * Permitira mostrar un mensaje de informacion al usuario 
	 * @param mensaje a mostrar al usuario
	 */
	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "Informacion", JOptionPane.INFORMATION_MESSAGE);
	}
	
	/**
	 * Permitira mostrar un mensaje de error al usuario 
	 * @param mensaje a mostrar al usuario
	 */
	public void mostrarMensajeError(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "ERROR", JOptionPane.ERROR_MESSAGE);
	}
	
	/**
	 * Permitira mostrar un mensaje de confirmacion al usuario 
	 * @param mensaje a mostrar al usuario
	 * @return respuesta del usuario
	 */
	public int mostrarMensajeConfirmacion(String mensaje) {
		return JOptionPane.showConfirmDialog(this, mensaje, "Selecciona una Opcion", JOptionPane.YES_NO_OPTION);
	}
	
	/**
	 * Agregamos los escuchadores al componento ComboBox
	 * @param action
	 */
	

}
